C#编程问题`` 如何将字符串算术计算出真正的值

来源:百度知道 编辑:UC知道 时间:2024/06/17 23:46:58
比如
string s = "3000/10-50+30";
comput(s)
怎么写一个函数 让他返回算术的值?
最好是带括号计算的那种``

实现代括号的比较麻烦,没人会有那时间去研究的,除非他做过,或者从网上当,但是我可以教你一个比较简单方法,但是做好还是要动下脑子的
1.用switch写一个单项式的加减乘除函数,就是求1+2,3*4这种单项式值的方法,好写吧
2.遍历字符串,求出“(”的个数
3.for循环遍历:
for (int i = 0; i < 个数; i++)
{
找到字符串中最后一个“(”,取出它与后面一个“)”,也就是第一个“)”之间的字符串(肯定是个单项式),调用方法1求出单项式的值,替换掉原来的“()”直接的字符串
}
最后剩下的字符串还是单项式,再调用方法1就算出结果了
原来很简单,其实写好了,也就那几行代码,别去网上当了,除非你是为了写代码而写代码,那样做提高不了的,要逼自己去写

字符串格式不固定,写这个函数需要花点功夫。
百度就有这个功能,你把字符串去掉双引号放在百度里搜索下即可得到结果。
所以说功夫自在人心。

DataTable中有这个方法。你可以试试看。

用substring函数遇到运算符就把字符分成两部分,s赋值为后者,再用两个数组分别存放数值和运算符,最后把字符串转化成int型进行运算

这不就是表达式求值吗,大学的数据结构课和编译原理肯定会讲的。我当时做了一个,输入任意一个表达式,进行求值。

在百度搜索表达式求值就有一大堆算法。